"""
Fortran Code Commentator

A professional automated code commenting system for Fortran codebases with support
for scientific computing applications, parallel processing, and AI-powered documentation.

Features:
- Automated Fortran code analysis and commenting
- Parallel processing with configurable workers
- AI-powered comment generation using LLM models
- Git diff-based patch application with error recovery
- Structured comment standards (Sphinx/Doxygen compatible)
- Code classification for domain-specific commenting
- Comprehensive backup and recovery systems

Authors: GSI Development Team
License: Apache 2.0
"""

from .core.models import *
from .core.system import CodeCommentarySystem
from .managers.prompt import PromptManager
from .managers.llm import LLMConnectionManager
from .processors.file import FileProcessor
from .processors.diff import DiffPatchProcessor
from .processors.classifier import CodeClassifier
from .utils.parallel import ParallelProcessingEngine

__version__ = "1.0.0"
__author__ = "GSI Development Team"
__email__ = "gsi-dev@noaa.gov"
__license__ = "Apache 2.0"

# Version info
VERSION_INFO = (1, 0, 0, "stable")

# Package metadata
PACKAGE_NAME = "fortran-code-commentator"
PACKAGE_DESCRIPTION = "Automated code commenting system for Fortran codebases"
PACKAGE_URL = "https://github.com/NOAA-GSI/fortran-code-commentator"

# Default configuration
DEFAULT_CONFIG = {
    "max_workers": 4,
    "max_file_lines": 1500,
    "backup_enabled": True,
    "validate_syntax": True,
    "comment_style": "doxygen",
    "log_level": "INFO",
}

# Supported Fortran file extensions
FORTRAN_EXTENSIONS = {".f", ".f90", ".f95", ".f03", ".f08", ".F", ".F90", ".F95", ".F03", ".F08"}

# Export main classes for easy import
__all__ = [
    # Core classes
    "CodeCommentarySystem",
    "PromptManager", 
    "LLMConnectionManager",
    "FileProcessor",
    "DiffPatchProcessor",
    "CodeClassifier",
    "ParallelProcessingEngine",
    
    # Data models
    "ProcessingTask",
    "ProcessingResults", 
    "CommentStandard",
    "PromptConfig",
    
    # Package info
    "__version__",
    "VERSION_INFO",
    "DEFAULT_CONFIG",
    "FORTRAN_EXTENSIONS",
]